<!--
 * @Description: 事件流-事件捕获
 * @Author: rendc
 * @Date: 2025-11-04 10:25:14
 * @LastEditors: rendc
 * @LastEditTime: 2025-11-04 11:44:45
-->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>事件流-事件捕获</title>
  <style>
    .outer,.middle,.inner{
      border: 1px solid white;
      border-radius: 50%;
    }
    .outer{
      width: 200px;
      height: 200px;
      background-color: #8de80d95;
    }
    .middle{
      margin: 25px;
      width: 150px;
      height: 150px;
      background-color: #05dcf079;
    }
    .inner{
      margin: 25px;
      width: 100px;
      height: 100px;
      background-color: #e25dca86;
    }
  </style>
</head>
<body>
  <!-- 事件的三要素 -->
  <!-- 事件源 div*3 -->
  <!-- 事件类型 click -->
  <!-- 事件处理程序 clickXxx() -->
  <!-- 执行事件的步骤 -->
  <!-- 1. 获取事件源 -->
  <!-- 2. 注册事件(绑定事件) -->
  <!-- 3. 添加事件处理程序 -->
  <button>事件捕获-点击切换为事件冒泡模式</button>
  <button>事件冒泡-点击切换为事件捕获模式</button>
  <div id="outer" class="outer">
    <!-- 外 -->
    <div id="middle" class="middle">
      <!-- 中 -->
      <div id="inner" class="inner">
        <!-- 内 -->
      </div>
    </div>
  </div>
  <script>

    if(事件捕获-点击切换为事件冒泡模式){
      事件冒泡-点击切换为事件捕获模式
    }else{
      事件捕获-点击切换为事件冒泡模式
    }



    
    // 1. 获取事件源
    var divOuter = document.getElementById("outer");
    // 2. 添加事件监听器
    // addEventListener
    // 1. 要监听的事件类型 click
    // 2. 事件处理程序 clickOuter
    // 3. false：默认-事件冒泡 true：事件捕获
    divOuter.addEventListener("click",clickOuter,true);
    // 3. 添加事件处理程序
    function clickOuter() {
      console.log('🤡 CC - clickOuter:');
    }
    // 1. 获取事件源
    var divMiddle = document.getElementById("middle");
    // 2. 添加事件监听器  
    divMiddle.addEventListener("click",clickMiddle,true);
    // 3. 添加事件处理程序
    function clickMiddle() {
      console.log('🤡 CC - clickMiddle:');
    }
    // 1. 获取事件源
    var divInner = document.getElementById("inner");
    // 2. 添加事件监听器  
    divInner.addEventListener("click",clickInner,true);
    // 3. 添加事件处理程序
    function clickInner() {
      console.log('🤡 CC - clickInner:');
    }
  </script>
</body>
</html>